const { Schema } = require('./connect')
const ObjectId = Schema.Types.ObjectId

const commentSchema = new Schema({
  content: String,
  from: { // 关联用户表
    type: ObjectId,
    ref: "users"
  },
  article: {
    type: ObjectId,
    ref: "articles"
  }
}, {
  versionKey: false,
  timestamps: {
    createdAt: "created", // 创建时间 
    updatedAt: "updated"
  }
})

// 设置comment 的 remove 钩子
// pre 前置钩子
// commentSchema.pre("remove", function(next) {
//   // this  指向当前文档 不能写箭头函数
  
//   next()
// })
// post 所有钩子的最后  只能一个    后置钩子
commentSchema.post("remove", doc => {
  const Article = require("../Models/article")
  const User = require("../Models/user")
  
  const {article, from} = doc
  // 更新article 的 commentNum
  Article
    .updateOne({_id: article}, {$inc: {commentNum: -1}})
    .exec()
  // 更新user 的 commentNum
  User
    .updateOne({_id: from}, {$inc: {commentNum: -1}})
    .exec()
})


module.exports = commentSchema